System and Method For Launching A Specific Program From A Simple Click On A String Of Characters

ABSTRACT

A method, system and computer program for automatically launching a target application based on characteristics of a selected string of characters in a source application includes the steps of receiving a command resulting from a user&#39;s action, selecting a string of characters in a source application; identifying among one or a plurality of predefined regular expressions, a regular expression matching the selected string of character; identifying a predefined data type previously associated with the source application and the regular expression matching the selected string of character; identifying a predefined target application previously associated with the identified data type and the source application; and launching the target application.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims priority from EPO Patent Application Serial No.EP06300904 filed on Aug. 31, 2006 and entitled SYSTEM AND METHOD FORLAUNCHING A SPECIFIC PROGRAM FROM A SIMPLE CLICK ON A STRING OFCHARACTERS.

FIELD OF THE INVENTION

This invention relates generally to the field of computer programs, andmore particularly to a computer system and method for automaticallylaunching a program or executing a specific action from a simplekeyboard or mouse operation on a string of characters.

BACKGROUND OF THE INVENTION

When working in an application, users often have the need to run anotherapplication (such as a mail application, a presentation, agenda, etc.)or to execute a specific action represented by a string of characters.The problem is that when the user reads a string of characters thathe/she needs for another purpose, he/she must make a separate noteincluding this string, or copy this string in a clipboard and then pasteit in another application.

According to the prior art, the hyperlink function provides the abilityto start a web browser from a specific string of characters in a text.The example hereafter illustrates this prior art. The fact of writing“www.” followed by other characters such as “ibm.com” is automaticallyrecognized in an office application like Lotus® WordPro as a web page,and the string is outlined in blue and underlined. Once the mouse cursoris on the string, when the user clicks on or executes a sequence of keys(Ctrl/click), he/she automatically opens a web browser such as MozillaFirefox or Microsoft Internet Explorer, and opens the written url. Thisability must be set in the program where the string is written. For atext written with Microsoft® Word, the automatic formatting ofhyperlinks must be kept “on” in the settings by selecting“tools”—“autocorrect options”—tab “Autoformat as you type”—and select“Internet and network paths with hyperlinks.”

Another possibility is to use a hyperlink associated with an e-mailaddress, for instance genius@emc2.de.. In this particular case, aCtrl/click action will open the user's favorite mail application, andwill allow him to send a mail to the owner of this mail address.

The two examples above show that it is possible to start uniqueapplications, based on a specific and fixed string of characters, whichhas been previously associated with the unique application. There is noway of performing this function other than opening a web browser for aweb address, and writing an e-mail for a mail address.

Other prior art examples may be found, such as the ability to click on aphone number when running a specific phone application, but in all casesthe scheme is the following: within a specific application or program,inputting a specific string of characters to allow the user to reach aunique application, and always the same application.

SUMMARY OF THE INVENTION

Briefly stated, a method, system and computer program for automaticallylaunching a target application based on characteristics of a selectedstring of characters in a source application includes the steps ofreceiving a command resulting from a user's action, selecting a stringof characters in a source application; identifying among one or aplurality of predefined regular expressions, a regular expressionmatching the selected string of character; identifying a predefined datatype previously associated with the source application and the regularexpression matching the selected string of character; identifying apredefined target application previously associated with the identifieddata type and the source application; and launching the targetapplication.

According to an embodiment of the invention, a method for automaticallylaunching a target application based on characteristics of a selectedstring of characters in a source application includes the steps of (a)receiving a command resulting from a user's action selecting a string ofcharacters in a source application; (b) identifying among one or aplurality of predefined regular expressions, a regular expressionmatching the selected string of characters; (c) identifying a predefineddata type previously associated with the source application and theregular expression matching the selected string of characters; (d)identifying a predefined target application previously associated withthe identified data type and the source application; and (e) launchingthe target application.

According to an embodiment of the invention, a system for automaticallylaunching a target application based on characteristics of a selectedstring of characters in a source application includes means forreceiving a command resulting from a user's action selecting a string ofcharacters in a source application; means for identifying among one or aplurality of predefined regular expressions, a regular expressionmatching the selected string of characters; means for identifying apredefined data type previously associated with the source applicationand the regular expression matching the selected string of characters;means for identifying a predefined target application previouslyassociated with the identified data type and the source application; andmeans for launching the target application.

According to an embodiment of the invention, a program productcomprising program codes stored in a computer readable storage mediumimplements the steps of (a) receiving a command resulting from a user'saction selecting a string of characters in a source application; (b)identifying among one or a plurality of predefined regular expressions,a regular expression matching the selected string of characters; (c)identifying a predefined data type previously associated with the sourceapplication and the regular expression matching the selected string ofcharacters; (d) identifying a predefined target application previouslyassociated with the identified data type and the source application; and(e) launching the target application.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1A shows a block diagram of a computer system in which the presentinvention may be embodied.

FIG. 1B shows a block diagram of a software system including anoperating system, an application software, and a user interface forcarrying out the present invention.

FIG. 2A shows a Parser Table structure which is used to determine thedata type according to the present invention.

FIG. 2B shows a Launcher Table structure which is used to determine theapplication to be launched according to the data type according to thepresent invention.

FIG. 3 shows a flow chart describing the steps of the method accordingto the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

The invention is partially based on the use of regular expressions.Regular expressions are used for the recognition of patterns in texts.

A regular expression, often called a pattern, is an expression thatdescribes a set of strings. Regular expressions are usually used to givea concise description of a set without having to list all elements. Forexample, the set containing the three strings Handel, Händel, andHaendel can be described by the pattern “H(ä|ae?)ndel”, oralternatively, it is said that the pattern matches each of the threestrings. As a side note, there are usually multiple different patternsdescribing any given set.

Most formalisms provide the following operations to construct regularexpressions:

(a) Alternation. A vertical bar separates alternatives. For example,“gray|grey” matches gray or grey.

(b) Grouping. Parentheses are used to define the scope and precedence ofthe operators. For example, “gray|grey” and “gr(a|e)y” are differentpatterns, but they both describe the set containing gray and grey.

(c) Quantification. A quantifier after a character or group specifieshow often that preceding expression is allowed to occur. The most commonquantifiers are ?, *, and +. The question mark “?” indicates there is 0or 1 in the previous expression (character). For example, “colou?r”matches both color and colour. The asterisk “*” indicates there are 0, 1or any number of the previous expression. For example, “go*gle” matchesggle, gogle, google, etc. The plus sign “+” indicates that there is atleast 1 of the previous expression. For example, “go+gle” matches gogle,google, etc.. but not ggle.

These constructions can be combined to form arbitrarily complexexpressions, very much like one can construct arithmetical expressionsfrom the numbers and the operations +, −, * and /.

“H(ae?|ä)ndel” and “H(a|ae|ä)ndel” are valid patterns, and furthermore,they both match the same strings as the example from the beginning ofthe Detailed Description. The pattern “((great )*grand)?(father|mother)” matches any ancestor: father, mother, grand father,grand mother, great grand father, great grand mother, great great grandfather, great great grand mother, great great great grand father, greatgreat great grand mother and so on.

Example of syntax. The precise syntax for regular expressions variesamong tools and application areas. Examples of syntax for the regularexpression are available on the Web by searching under “syntax regularexpression.”

Meta characters.

-   -   Escape character \    -   Single Character Meta characters    -   . Matches any one character    -   [. . . ] Matches any one character in a set    -   [̂ . . . ] Matches any one character not in the set    -   [:class:] Character classes        -   {[:alnum:]] [[:alpha:]] [[:blank:]] [[:cntrl:]] [[:digit:]]            [[:graph:]]        -   [[:lower:]] [[:print:}] {[:punct:}] {[:space:}] {[:upper:}]            [{:xdigit:]

Quantifiers.

-   -   ? Matches the previous character zero or one times    -   * Matches the previous character zero or more times    -   + Matches the previous character one or more times    -   \{n\} Matches the previous character n times    -   \{n,m\} Matches the previous character at least n & at most m    -   \{n,\} Matches the previous character n or more times

Anchors.

-   -   ̂ Matching at the start the line    -   $ Matching at the end of line    -   \< Matching at start of word    -   \> Matching at end of word    -   \b Matching at the beginning or the end of a word    -   \B Matching any character not at the beginning or end of word

Grouping \(\)

Backreference \1 \2 . . . \9

Table 1 shows examples of items and their regular expressions.

TABLE 1 Item Regular Expression Postal State Abbr [A-Z]\{2\} City, State.+, [A-Z]\{2\} Month, day, year [A-Z][a-z]\{2,9\} [0-9]\{1,2\} [0-9]\{2,4\} Formatted Dollar \$[ 0-9]*\.[0-9][0-9] Local Phone number[0-9]\{3|}−[0-9]\{4\} Floating point number −?[0-9]+\.[0-9]+ Hexadecimalnumber 0x[0-9a-fA-F]+ Any line {circumflex over ( )}.*$ Blank line{circumflex over ( )}$ html inline code <[{circumflex over ( )}>]+>Email address, e.g., “user@hosts.com”[a-z0-9_-]+\(\.[a-z0-9_-]*\)@[a-z0-9_- ]+\(\.[a-z0-9]+\)+ Email address,e.g., “Joe Doe” \(“?[a-zA-Z]+”?[\t]*{circumflex over ( )}\<\(\.[a-z0-9_-]*\)@[a-z0-9_-]+\(\.[a-z0-9]+\)+\> Protocol Validity matches web baseprotocol [a-z]+:// such as http://ftp://https://

In the examples in Table 1, some typical regular expressions arepresented that can be used in the present invention. The presentinvention is based on the following principles. (1) Regular expressionare defined for identifying a specific user defined data type. (2)Depending on the context (which is the running application), thepossibility is given to the user, through a contextual menu, to launch apre-programmed application with the identified character string asvariable.

Physical view

As shown in FIG. 1A, the present invention may be embodied on a computersystem 100 comprising a central processor 101, a main memory 102, aninput/output controller 103, a keyboard 104, a pointing device 105(e.g., mouse, track ball, pen device, or the like), a display device106, and a mass storage 107 (e.g., hard disk). Additional input/outputdevices, such as a printing device 108, may be included in the system100 as desired. As illustrated, the various components of the system 100communicate through a system bus 110 or similar architecture. In apreferred embodiment, the computer system 100 includes an IBM-compatiblepersonal computer, which is available from several vendors including IBMof Armonk, N.Y.

As illustrated in FIG. 1B, a computer software system 150 is providedfor directing the operation of the computer system 100. Software system150, which is stored in system memory 102 and on disk memory 107,includes a kernel or operating system 151 and a shell or interface 153.One or more application programs, such as application software 152, maybe “loaded” (i.e., transferred from storage 107 into memory 102) forexecution by the system 100. The system 100 receives user commands anddata through user interface 153; these inputs may then be acted upon bythe system 100 in accordance with instructions from operating module 151and/or application module 152. The interface 153, which is preferably agraphical user interface (GUI), also serves to display results,whereupon the user may supply additional inputs or terminate thesession. In a preferred embodiment, operating system 151 and interface153 are Microsoft Win2000/XP, available from Microsoft Corporation ofRedmond, Wash. Application module 152, includes a data type analyzer andan application launcher of the present invention as described in furtherdetail herein below.

Logical Tables

(1) Parser Table. FIG. 2A depicts a table called Parser Table in thepresent description. The Parser Table 200 is a two column table, wherethe first column represents a regular expression 210, and the secondcolumn represents the DATA Type 220 corresponding to the regularexpression. Each regular expression and data type is user defined. Thethree rows 230, 231, and 233 are associated with different data types,respectively named “MSISDN”, “Email”, and “GSM MSISDN.”

(2) Launcher Table. FIG. 2B depicts a table called Launcher Table in thepresent description, and which preferably includes five differentrecords 290, 291, 292, 293, and 294. To each DATA Type corresponds anentry 260 in the Launcher Table 250. Each entry preferably includes (a)the DATA Type 220 defined in the Parser Table (See FIG. 2A), (b) theactive application 265 which is the application managing the window inwhich the characters string has been selected, (c) the targetapplication 270 which is the application to be launched when theselected characters string is identified as having the Data typecorresponding to this entry, and (d) the Usage Frequency which definesthe rate usage of this target application.

If no active application is defined or an “*” has been set, this entryis used for any application. This field allows to define differenttarget applications for the same data type, potentially depending on theactive application. For instance, the record 293 specifies that a datatype “Email” is associated to the target application “Outlook” when theactive application is “Word”, while the record 294 specifies that thesame data type “Email” is associated to the target application “LotusNotes” when the active application is “Wordpro”.

FIG. 3 depicts the flow chart describing the steps of the methodaccording to the present invention. At step 300, the method isinitialized and starts. At step 305, a user in the source applicationselects a string of characters. At step 310, the user executes in apreferred embodiment a right click on the mouse on the selected stringof characters to launch an application associated with this string ofcharacters. At step 315, a process for determining the selected datatype is started. This process parses the selected string of characterusing the previously described Parser Table 200 (FIG. 2A). Each entry ofthe Parser Table 200 is scanned to match a user defined regularexpression with the selected string of characters. As soon as the stringof characters matches a regular expression, the data type correspondingto the regular expression matching the string of character is saved in alocal variable. The scanning continues until the end of the Parser Table200.

If a new entry match again the characters string, case of subtype (typerefinement), the newly detected type is saved in place of the previouslysaved data type. This means that the user must take care of the regularexpression order, defining the most general rule in first, and refiningthe rule after.

As example, a string of ten digits beginning by “0” in France, may beconsidered as a telephone number (type MSISDN). It is true for bothnumber “0492114000” and “0612345678”. But if a rule associating a type“GSM MSISDN” is added, if the second digit is equal to “6”, then thecharacters string “0612345678” will be typed “GSM MSISDN” whilecharacters string “0492114000” will be typed “MSISDN”.

At step 320, when the Parser Table 200 is fully scanned, the processdetermines whether or not a data type is identified for the selectedstring of characters. If it is the case, then control is given to step325; otherwise control is given to step 360. At step 325, theapplication(s) associated with this data type and the source applicationtype is(are) retrieved. This “retrieve process” uses the Launcher Table250 (FIG. 2B) and creates a temporary table containing the targetapplication 270 and the percentage of usage 275 for each entry of theLauncher Table 250 which matches the previously identified data type andactive application.

At step 330, the process checks whether at least one applicationassociated with this data type and the source application has beenidentified at the previous step. If it is the case, then control isgiven to step 335; otherwise control is given to step 360. At step 335,the process checks whether a single application has been identified atstep 325. If it is the case, then control is given to step 350;otherwise control is given to step 340.

At step 340, the user is prompted with a list box comprising allapplications eligible to process the data type identified. This list boxpresents all applications ordered by their percentage of use, with themore used application in first. At step 345, a test is performed tocheck if the user has selected an application. If it is the case, thencontrol is given to step 350; otherwise control is given to step 360. Atstep 350, the either unique or user selected target application islaunched with the user selected characters string as argument orparameter. At step 360, the process is ended.

The description focuses on the presently preferred embodiments of thepresent invention, which are embodied in an application operative in theMicrosoft Windows environment. The present invention, however, is notlimited to any particular application or any particular environment.Instead, those skilled in the art will find that the system and methodsof the present invention may be advantageously applied to a variety ofsystem and application software, including database management systems,word processors, and the like. Moreover, the present invention may beembodied on a variety of different platforms, including Macintosh, UNIX,NextStep, and the like. Therefore, the description of the exemplaryembodiments is for purposes of illustration and not limitation. Whilethe present invention has been described with reference to a particularpreferred embodiment and the accompanying drawings, it will beunderstood by those skilled in the art that the invention is not limitedto the preferred embodiment and that various modifications and the likecould be made thereto without departing from the scope of the inventionas defined in the following claims.

1. A method for automatically launching a target application based oncharacteristics of a selected string of characters in a sourceapplication, said method comprising the steps of: receiving a commandresulting from a user's action selecting a string of characters in asource application; identifying among one or a plurality of predefinedregular expressions, a regular expression matching the selected stringof characters; identifying a predefined data type previously associatedwith the source application and the regular expression matching theselected string of characters; identifying a predefined targetapplication previously associated with the identified data type and thesource application; and launching the target application.
 2. The methodaccording to claim 1 wherein the step of identifying among one or aplurality of predefined regular expressions comprises the steps of:identifying one or a plurality of predefined regular expressionsmatching the selected string of characters; and selecting according topredefined criteria, a regular expression among the plurality ofidentified regular expressions matching the selected string ofcharacters.
 3. The method according to claim 2 wherein the step ofidentifying a predefined target application previously associated withthe identified data type and the source application, comprises the stepsof: identifying one or a plurality of predefined target applicationspreviously associated with the identified data type and the sourceapplication; asking the user to select a target application among themultiple identified target applications; and receiving a commandresulting from a user's action, and selecting a target application amongthe multiple identified target applications.
 4. The method according toclaim 3, wherein the step of identifying one or a plurality ofpredefined regular expressions matching the selected string ofcharacters, comprises the step of identifying in a first table, one or aplurality of user regular expressions matching the selected string ofcharacter, said first table comprising a one or a plurality of regularexpressions, each regular expression being associated with a userdefined data type.
 5. The method according to claim 4, wherein the stepof identifying a predefined data type previously associated with theselected regular expression matching the selected string of characters,comprises the step of identifying in said first table the data typeassociated with the selected regular expression matching the selectedstring of characters.
 6. The method according to claim 5, wherein thestep of identifying one or a plurality of predefined applicationspreviously associated with the identified data type and sourceapplication, comprises the step of identifying in a second table, one ora plurality of target applications associated with the identified datatype and the source application, said second table comprising one or aplurality of data types, each data type being associated with one or aplurality of source applications, and each data type and sourceapplication being associated with one or a plurality of targetapplications.
 7. The method according to claim 6, wherein the step ofasking the user to select a target application among the multipleidentified target applications, comprises the steps of: identifying ausage rate for each identified target application, and presenting to theuser an ordered list of the identified target applications based on theidentified usage rate.
 8. The method according to claim 7, wherein thestep of launching the target application, comprises the step of passingto the target application the selected string of characters as anargument or parameter.
 9. A system for automatically launching a targetapplication based on characteristics of a selected string of charactersin a source application, comprising: means for receiving a commandresulting from a user's action selecting a string of characters in asource application; means for identifying among one or a plurality ofpredefined regular expressions, a regular expression matching theselected string of characters; means for identifying a predefined datatype previously associated with the source application and the regularexpression matching the selected string of characters; means foridentifying a predefined target application previously associated withthe identified data type and the source application; and means forlaunching the target application.
 10. The system according to claim 9wherein the means for identifying among one or a plurality of predefinedregular expressions comprises: means for identifying one or a pluralityof predefined regular expressions matching the selected string ofcharacters; and means for selecting according to predefined criteria, aregular expression among the plurality of identified regular expressionsmatching the selected string of characters.
 11. The system according toclaim 10 wherein the means for identifying a predefined targetapplication previously associated with the identified data type and thesource application, comprises: means for identifying one or a pluralityof predefined target applications previously associated with theidentified data type and the source application; means for asking theuser to select a target application among the multiple identified targetapplications; and means for receiving a command resulting from a user'saction, and selecting a target application among the multiple identifiedtarget applications.
 12. The system according to claim 11, wherein themeans for identifying one or a plurality of predefined regularexpressions matching the selected string of characters, comprises meansfor identifying in a first table, one or a plurality of user regularexpressions matching the selected string of character, said first tablecomprising a one or a plurality of regular expressions, each regularexpression being associated with a user defined data type.
 14. Thesystem according to claim 13, wherein the means for identifying apredefined data type previously associated with the selected regularexpression matching the selected string of characters, comprises meansfor identifying in said first table the data type associated with theselected regular expression matching the selected string of characters.15. The system according to claim 14, wherein the means for identifyingone or a plurality of predefined applications previously associated withthe identified data type and source application, comprises means foridentifying in a second table, one or a plurality of target applicationsassociated with the identified data type and the source application,said second table comprising one or a plurality of data types, each datatype being associated with one or a plurality of source applications,and each data type and source application being associated with one or aplurality of target applications.
 16. The system according to claim 15,wherein the means for asking the user to select a target applicationamong the multiple identified target applications, comprises: means foridentifying a usage rate for each identified target application, andmeans for presenting to the user an ordered list of the identifiedtarget applications based on the identified usage rate.
 17. The systemaccording to claim 16, wherein the means for launching the targetapplication, comprises means for passing to the target application theselected string of characters as an argument or parameter.
 18. A programproduct comprising program codes stored in a computer readable storagemedium, said program codes implementing the steps of: receiving acommand resulting from a user's action selecting a string of charactersin a source application; identifying among one or a plurality ofpredefined regular expressions, a regular expression matching theselected string of characters; identifying a predefined data typepreviously associated with the source application and the regularexpression matching the selected string of characters; identifying apredefined target application previously associated with the identifieddata type and the source application; and launching the targetapplication.
 19. The program product according to claim 18 wherein thestep of identifying among one or a plurality of predefined regularexpressions further comprises the steps of: identifying one or aplurality of predefined regular expressions matching the selected stringof characters; and selecting according to predefined criteria, a regularexpression among the plurality of identified regular expressionsmatching the selected string of characters.
 20. The program productaccording to claim 19 wherein the step of identifying a predefinedtarget application previously associated with the identified data typeand the source application, further comprises the steps of: identifyingone or a plurality of predefined target applications previouslyassociated with the identified data type and the source application;asking the user to select a target application among the multipleidentified target applications; and receiving a command resulting from auser's action, and selecting a target application among the multipleidentified target applications.